home *** CD-ROM | disk | FTP | other *** search
/ Amiga Format CD 38 / Amiga Format CD38 (1999-03-15)(Future Publishing)(GB)(Track 1 of 3)[!][issue 1999-04].iso / -seriously_amiga- / programming / other / cyberxxxsrc / decoder / txt / jpeg.h < prev    next >
C/C++ Source or Header  |  1999-02-08  |  2KB  |  110 lines

  1. #ifndef JPEG_H
  2. #define JPEG_H
  3.  
  4. #define MAXJSAMPLE 255
  5. #define CENTERJSAMPLE 128
  6. #define RANGE_MASK  (MAXJSAMPLE * 4 + 3) /* 2 bits wider than legal samples */
  7.  
  8. #define JJ_NUM_HUFF_TBLS  4
  9. #define JJ_NUM_QUANT_TBLS 4
  10.  
  11. #define HUFF_LOOKAHEAD 8
  12.  
  13. typedef struct HUFFMAN_STRUCT {
  14.     long mincode[17];
  15.     long maxcode[18];
  16.     long valptr[17];
  17.     ushort cache[256];
  18.     uchar vals[256];
  19.     uchar bits[18];
  20. } JJ_HUFF_TBL;
  21.  
  22. typedef struct COMPONENT_STRUCT {
  23.   ulong hvsample;
  24.   ulong ac_htbl_num;
  25.   ulong dc_htbl_num;
  26.   ulong qtbl_num;
  27.   ushort id;
  28.   long dc;
  29. } COMPONENT_HDR;
  30.  
  31. #define DCTSIZE 8
  32. #define DCTSIZE2 64
  33.  
  34. typedef int ISLOW_MULT_TYPE;
  35.  
  36.  
  37. /* JPEG MARKERS */
  38. #define   M_SOF0    0xc0
  39. #define   M_SOF1    0xc1
  40. #define   M_SOF2    0xc2
  41. #define   M_SOF3    0xc3
  42. #define   M_SOF5    0xc5
  43. #define   M_SOF6    0xc6
  44. #define   M_SOF7    0xc7
  45. #define   M_JPG     0xc8
  46. #define   M_SOF9    0xc9
  47. #define   M_SOF10   0xca
  48. #define   M_SOF11   0xcb
  49. #define   M_SOF13   0xcd
  50. #define   M_SOF14   0xce
  51. #define   M_SOF15   0xcf
  52. #define   M_DHT     0xc4
  53. #define   M_DAC     0xcc
  54. #define   M_RST0    0xd0
  55. #define   M_RST1    0xd1
  56. #define   M_RST2    0xd2
  57. #define   M_RST3    0xd3
  58. #define   M_RST4    0xd4
  59. #define   M_RST5    0xd5
  60. #define   M_RST6    0xd6
  61. #define   M_RST7    0xd7
  62. #define   M_SOI     0xd8
  63. #define   M_EOI     0xd9
  64. #define   M_SOS     0xda
  65. #define   M_DQT     0xdb
  66. #define   M_DNL     0xdc
  67. #define   M_DRI     0xdd
  68. #define   M_DHP     0xde
  69. #define   M_EXP     0xdf
  70. #define   M_APP0    0xe0
  71. #define   M_APP1    0xe1
  72. #define   M_APP2    0xe2
  73. #define   M_APP3    0xe3
  74. #define   M_APP4    0xe4
  75. #define   M_APP5    0xe5
  76. #define   M_APP6    0xe6
  77. #define   M_APP7    0xe7
  78. #define   M_APP8    0xe8
  79. #define   M_APP9    0xe9
  80. #define   M_APP10   0xea
  81. #define   M_APP11   0xeb
  82. #define   M_APP12   0xec
  83. #define   M_APP13   0xed
  84. #define   M_APP14   0xee
  85. #define   M_APP15   0xef
  86. #define   M_JPG0    0xf0
  87. #define   M_JPG13   0xfd
  88. #define   M_COM     0xfe
  89. #define   M_TEM     0x01
  90. #define   M_ERROR   0x100
  91.  
  92. #define xaTRUE 1
  93. #define xaFALSE 0
  94.  
  95. #define JPG_MAX_COMPS 4
  96. #define JPG_DUMMY_COMP (JPG_MAX_COMPS + 1)
  97.  
  98. #define JJ_INPUT_CHECK(val) ((jpg_bsize >= (val))?(xaTRUE):(xaFALSE))
  99. #define JJ_INPUT_xaBYTE(var) { var = *jpg_buff++; jpg_bsize--; }
  100. #define JJ_INPUT_xaSHORT(var) { var = (*jpg_buff++) << 8; var |= (*jpg_buff++); jpg_bsize -= 2; }
  101.  
  102. #define JFIF_APP0_LEN 14
  103.  
  104. #define xaMIN(x,y)   ( ((x)>(y))?(y):(x) )
  105. #define xaMAX(x,y)   ( ((x)>(y))?(x):(y) )
  106. #define xaABS(x)     (((x)<0)?(-(x)):(x))
  107.  
  108. #endif
  109.  
  110.